package com.ceshi;

import java.lang.reflect.Method;

/**
 *
 *
 * 执行顺序:
 * 执行父类静态代码 执行子类静态代码
 * 初始化父类成员变量（我们常说的赋值语句）
 * 初始化父类构造函数
 * 初始化子类成员变量
 * 初始化子类构造函数
 *
 * @author Jack
 * @description: TODO
 * @date 2021/9/17 21:20
 */
public class Son extends Father {

    {
        System.out.println("Son {}");
    }

    static {
        System.out.println("Son Static");
    }

    public Son() {
        System.out.println(" init Son");
    }

    public void sayHello(){
        System.out.println("hhhh");
    }

    @Override
    protected void doSomthing() {
        System.out.println("I am Son do something");
    }




    public static void main(String[] args) throws Exception {
        Son son = new Son();
       // Child child = new Child();

      Method method= son.getClass().getMethod("sayHello");
      System.out.println( method.getDeclaringClass());

    }
}
